The present invention relates to the field of computer graphics and animation, and more specifically to techniques for determining a position of a component of an animated object relative to a surface represented by a depth map and updating the state of the animated object based upon the determination.
Animation involves the generation of a series of still images that, when played back in quick succession, appear as continuously moving. In computer animation, a rendering process is used to generate a two-dimensional image of a three-dimensional scene from a given viewpoint. Animated sequences can be created by rendering a sequence of the rendered images of a scene as a scene is gradually changed over time. A great deal of effort has been devoted to making the rendered images and the resultant animation realistic.
Typically, animated objects do not need to know about the environment during an animation process. However, in certain situations, an animated object needs to know about its environment in order to be positioned appropriately with respect to the environment to increase the realism of the animation. For example, a car being animated needs to know about the ground so that the car is properly positioned on the ground. The car also has to be able to react to changes in terrain of the ground. For example, the terrain changes may correspond to speed bumps, pot holes, etc. These terrain changes may not be part of the ground surface representation but instead be represented by displacement maps in the shader code or additional objects placed on the surface. This cannot be handled by conventional techniques that handle interactions between two surfaces and require that surface characteristics be part of environment surface.
Further, in the past, in order to animate an object responsive to an environment surface, the models of both the object being animated and the environment surface had to be loaded into the memory of a processing system in order to perform the animation. This however is an “expensive” task since the environment surface model is typically very large in size and requires extensive memory and processing resources. Many times, the amount of available memory is not sufficient to load an environment surface model. An animator would much rather prefer to animate objects without having to load the surface model.
Accordingly, what is desired are improved techniques for solving some of the problems discussed above. Additionally, what is desired are improved techniques for reducing some of the drawbacks discussed above.